import request from '@/config/axios'

// 遴选批次详情
export interface PickBatchDetailVO {
  id: string // 批次id
  batchName: string // 批次名称
  year: string // 年份
  applyTemplateUrl: string // 申请表模板地址
  applyStartTime: number // 申请开始时间
  applyEndTime: number // 申请结束时间
  reviewStartTime: number // 审核开始时间
  reviewEndTime: number // 审核结束时间
}

// 导师遴选申请 DTO
export interface MentorApplyDTO {
  batchId: string // 批次id
  username: string // 账号
  password: string // 密码
  confirmPassword: string // 确认密码
  nickName: string // 真实姓名
  email: string // 邮箱地址
  mobile: string // 手机号
  identity: string // 身份证号
  title: string // 职称
  applyMajor: string // 申请专业
  deptId: number // 部门id
  highestDegree: string // 最高学历
  applicationFormUrl: string // 申请表url
  appendixUrl: string // 附件url
}

// 已登录的导师遴选申请 DTO
export interface MentorApplyWithAccountDTO {
  batchId: string // 批次id
  title: string // 职称
  applyMajor: string // 申请专业
  deptId: number // 部门id
  highestDegree: string // 最高学历
  applicationFormUrl: string // 申请表url
  appendixUrl: string // 附件url
}

// 导师遴选批次申请信息
export interface MentorPickApplyInfoVO {
  id: string // 批次id
  batchName: string // 批次名称
  year: string // 年度
  applyStartTime: number // 申请开始时间
  applyEndTime: number // 申请结束时间
  applyTemplateUrl: string // 申请表模板地址
  isApply: boolean // 是否已申请
  applyTime: number // 申请时间
  reviewResult: number | null // 审核结果 null:审核未完成 1:通过 -1:不通过
}

// 导师遴选申请相关 API
export const MentorApplyApi = {
  // ======= 未登陆的研究员 无token =======
  // 查询导师遴选批次详情
  getPickBatch: async (id: string) => {
    return await request.get<PickBatchDetailVO>({
      url: `/recruit/pick-batch/get-batch?batchId=` + id,
      headers: { isToken: false }
    })
  },

  // 查询部门
  getDepartment: async () => {
    return await request.get({
      url: `/system/dept/dept-list`,
      headers: { isToken: false }
    })
  },

  // 填写完表单发起申请
  createApply: async (data: MentorApplyDTO) => {
    return await request.post({
      url: `/recruit/pick-detail/first-pick-apply`,
      data,
      headers: { isToken: false }
    })
  },

  // ======= 已登陆的研究员 =======

  // 获取批次列表(包括申请状态)
  getPickBatchList: async (params: any) => {
    return await request.get({
      url: `/recruit/pick-batch/pick-list`,
      params
    })
  },

  // 导师遴选申请
  applyWithAccount: async (data: MentorApplyWithAccountDTO) => {
    return await request.post({
      url: `/recruit/pick-detail/pick-apply`,
      data
    })
  },

  // 查询当前研究员指定批次的申请信息
  getApplyInfo: async (batchId: string) => {
    return await request.get({
      url: `/recruit/pick-detail/page`,
      params: { batchId, pageNo: 1, pageSize: 1 }
    })
  }
}
